package org.ucas.faker.web.entity.patents;

import org.ucas.faker.web.fetcher.annotation.Connection;
import org.ucas.faker.web.fetcher.annotation.JoinCond;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "patent")
@Connection(table = "patent_meta", conds = {
    @JoinCond(column = "id", target = "id")
})
public class Patent implements Patentable {

  @Id
  private Long id;

  @Column(name = "an")
  private String an; // 申请号

  @Column(name = "ad", columnDefinition = "VARCHAR(100)")
  private String ad; // 申请日期

  @Column(name = "ro")
  private String ro; // 受理局


@Column(name = "pn")
  private String pn; // 公开号

  @Column(name = "pd", columnDefinition = "VARCHAR(100)")
  private String pd; // 公开(公告)日

//  @Column(name = "prn", columnDefinition = "VARCHAR(1000)")
//  private String prn; // 优先权号

  @Column(name = "prd", columnDefinition = "VARCHAR(100)")
  private String prd; // 优先权日期

  @Column(name = "pt", columnDefinition = "VARCHAR(100)")
  private String pt; // 专利类别
//
//  @Column(name = "ap", columnDefinition = "VARCHAR(1000)")
//  private String ap; // 申请人
//
//  @Column(name = "apc")
//  private String apc; // 申请人所在国

//  @Column(name = "apad")
//  private String apad; // 申请人地址

  @Column(name="apr")
  private String apr;//省份
  


@Column(name = "ap_count")
  private Integer ap_count; // 申请人数量

  @Column(name = "ap_year")
  private Integer ap_year; // 申请年


//  @Column(name = "pa", columnDefinition = "VARCHAR(1000)")
//  private String pa; // 专利权人
//
//  @Column(name = "pac")
//  private String pac; // 专利权人所在国
//
//  @Column(name = "pacp")
//  private String pacp; // 专利权人所在国代码
//
//  @Column(name = "paad", columnDefinition = "VARCHAR(1000)")
//  private String paad; // 专利权人地址

  @Column(name = "pa_count")
  private Integer pa_count; // 专利权人数量

//  @Column(name = "inventor", columnDefinition = "TEXT")
//  private String in; // 发明人

  @Column(name = "in_count")
  private Integer in_count; // 发明人数量

//  @Column(name = "ic", columnDefinition="VARCHAR(1000)")
//  private String ic; // IPC 分类号

//  @Column(name = "icm")
//  private String icm; // IPC 主分类号

  @Column(name = "ipc_count")
  private Integer ipc_count; // IPC分类号数量

//  @Column(name = "cpc", columnDefinition = "TEXT")
//  private String cpc; // 联合国专利分类号

  @Column(name = "ccm")
  private String ccm; // CPC主分类号

  @Column(name = "cpc_count")
  private Integer cpc_count; // CPC分类号数量

  @Column(name = "lc")
  private String lc; // 国际外观设计分类号, 缺

  @Column(name = "fm")
  private String fm; // 基本专利族专利号, 待定

  @Column(name = "ifm")
  private String ifm; // 扩展专利族专利号， 待定

  @Column(name = "fm_count")
  private Integer fm_count; // 基本专利族专利数量， 待定

  @Column(name = "ifm_count")
  private Integer ifm_count; // 扩展专利族专利数量， 待定


  // 引用字段

  @Column(name = "cb", columnDefinition = "TEXT")
  private String cb; // 引用专利情况

  @Column(name = "cbt")
  private Integer cbt; // 引用类型, 缺

  @Column(name = "cbr")
  private String cbr; // 引用说明, 缺

  @Column(name = "cbap")
  private String cbap; // 引用专利申请人, 缺

  @Column(name = "cb_scount")
  private Integer cb_scount; // 引用专利数量

  @Column(name = "cb_fcount")
  private Integer cb_fcount; // 基本专利族引用专利数量, 缺

  @Column(name = "cb_count")
  private Integer cb_count; // 扩展专利族引用专利数量, 缺

  @Column(name = "cf", columnDefinition = "TEXT")
  private String cf; // 被专利引用情况

  @Column(name = "cfr")
  private String cfr; // 被引用说明, 缺

  @Column(name = "cfap")
  private String cfap; // 被引用专利申请人, 缺

  @Column(name = "cf_scount")
  private Integer cf_scount; // 被引用专利数量

  @Column(name = "cf_fcount")
  private Integer cf_fcount; // 基本专利族被引用专利数量, 缺

  @Column(name = "cf_count")
  private Integer cf_count; // 扩展专利族被引用专利数量， 缺

  @Column(name = "cfl", columnDefinition = "TEXT")
  private String cfl; // 被引用文献

  // 法律状态字段

  @Column(name = "ls")
  private Integer ls; // 法律状态,s值为0（未知）、1（未授权）、2（有效）、3（已失效）

  @Column(name = "ath")
  private Integer ath; // 专利是否曾授权

  @Column(name = "gd")
  private String gd; // 	授权日

  @Column(name = "ld")
  private String ld; // 失效日

  @Column(name = "prl")
  private Integer prl; // 	专利预期剩余寿命, 缺

  @Column(name = "lhsc")
  private String lhsc; // 法律状态详情类型

  @Column(name = "lhsd")
  private String lhsd; // 法律状态详情公告日

  @Column(name = "lhsp")
  private String lhsp; // 法律状态详情描述


  // 权利许可字段

  @Column(name = "lcp1")
  private String lcp1; // 专利权许可许可人

  @Column(name = "lcp2")
  private String lcp2; // 专利权许可被许可人

  @Column(name = "lcpd")
  private String lcpd; // 专利权许可事件日期

  public String getApr() {
	  return apr;
  }

  public void setApr(String apr) {
	  this.apr = apr;
  }

  public Long getId() {
    return id;
  }

  public void setId(Long id) {
    this.id = id;
  }

  public String getAn() {
    return an;
  }

  public void setAn(String an) {
    this.an = an;
  }

  public String getAd() {
    return ad;
  }

  public void setAd(String ad) {
    this.ad = ad;
  }

  public String getPn() {
    return pn;
  }

  public void setPn(String pn) {
    this.pn = pn;
  }

  public String getPd() {
    return pd;
  }

  public void setPd(String pd) {
    this.pd = pd;
  }

  public String getPrd() {
    return prd;
  }

  public void setPrd(String prd) {
    this.prd = prd;
  }

  public String getPt() {
    return pt;
  }

  public void setPt(String pt) {
    this.pt = pt;
  }



  public Integer getAp_count() {
    return ap_count;
  }

  public void setAp_count(Integer ap_count) {
    this.ap_count = ap_count;
  }



  public Integer getPa_count() {
    return pa_count;
  }

  public void setPa_count(Integer pa_count) {
    this.pa_count = pa_count;
  }


  public Integer getIn_count() {
    return in_count;
  }

  public void setIn_count(Integer in_count) {
    this.in_count = in_count;
  }



//  public String getIcm() {
//    return icm;
//  }
//
//  public void setIcm(String icm) {
//    this.icm = icm;
//  }

  public Integer getIpc_count() {
    return ipc_count;
  }

  public void setIpc_count(Integer ipc_count) {
    this.ipc_count = ipc_count;
  }



  public Integer getCpc_count() {
    return cpc_count;
  }

  public void setCpc_count(Integer cpc_count) {
    this.cpc_count = cpc_count;
  }

  public String getLc() {
    return lc;
  }

  public void setLc(String lc) {
    this.lc = lc;
  }

  public String getFm() {
    return fm;
  }

  public void setFm(String fm) {
    this.fm = fm;
  }

  public String getIfm() {
    return ifm;
  }

  public void setIfm(String ifm) {
    this.ifm = ifm;
  }

  public Integer getFm_count() {
    return fm_count;
  }

  public void setFm_count(Integer fm_count) {
    this.fm_count = fm_count;
  }

  public Integer getIfm_count() {
    return ifm_count;
  }

  public void setIfm_count(Integer ifm_count) {
    this.ifm_count = ifm_count;
  }

  public String getCb() {
    return cb;
  }

  public void setCb(String cb) {
    this.cb = cb;
  }

  public Integer getCbt() {
    return cbt;
  }

  public void setCbt(Integer cbt) {
    this.cbt = cbt;
  }

  public String getCbr() {
    return cbr;
  }

  public void setCbr(String cbr) {
    this.cbr = cbr;
  }

  public String getCbap() {
    return cbap;
  }

  public void setCbap(String cbap) {
    this.cbap = cbap;
  }

  public Integer getCb_scount() {
    return cb_scount;
  }

  public void setCb_scount(Integer cb_scount) {
    this.cb_scount = cb_scount;
  }

  public Integer getCb_fcount() {
    return cb_fcount;
  }

  public void setCb_fcount(Integer cb_fcount) {
    this.cb_fcount = cb_fcount;
  }

  public Integer getCb_count() {
    return cb_count;
  }

  public void setCb_count(Integer cb_count) {
    this.cb_count = cb_count;
  }

  public String getCf() {
    return cf;
  }

  public void setCf(String cf) {
    this.cf = cf;
  }

  public String getCfr() {
    return cfr;
  }

  public void setCfr(String cfr) {
    this.cfr = cfr;
  }

  public String getCfap() {
    return cfap;
  }

  public void setCfap(String cfap) {
    this.cfap = cfap;
  }

  public Integer getCf_scount() {
    return cf_scount;
  }

  public void setCf_scount(Integer cf_scount) {
    this.cf_scount = cf_scount;
  }

  public Integer getCf_fcount() {
    return cf_fcount;
  }

  public void setCf_fcount(Integer cf_fcount) {
    this.cf_fcount = cf_fcount;
  }

  public Integer getCf_count() {
    return cf_count;
  }

  public void setCf_count(Integer cf_count) {
    this.cf_count = cf_count;
  }

  public String getCfl() {
    return cfl;
  }

  public void setCfl(String cfl) {
    this.cfl = cfl;
  }

  public Integer getLs() {
    return ls;
  }

  public void setLs(Integer ls) {
    this.ls = ls;
  }

  public Integer getAth() {
    return ath;
  }

  public void setAth(Integer ath) {
    this.ath = ath;
  }

  public String getGd() {
    return gd;
  }

  public void setGd(String gd) {
    this.gd = gd;
  }

  public String getLd() {
    return ld;
  }

  public void setLd(String ld) {
    this.ld = ld;
  }

  public Integer getPrl() {
    return prl;
  }

  public void setPrl(Integer prl) {
    this.prl = prl;
  }

  public String getLhsc() {
    return lhsc;
  }

  public void setLhsc(String lhsc) {
    this.lhsc = lhsc;
  }

  public String getLhsd() {
    return lhsd;
  }

  public void setLhsd(String lhsd) {
    this.lhsd = lhsd;
  }

  public String getLhsp() {
    return lhsp;
  }

  public void setLhsp(String lhsp) {
    this.lhsp = lhsp;
  }

  public String getLcp1() {
    return lcp1;
  }

  public void setLcp1(String lcp1) {
    this.lcp1 = lcp1;
  }

  public String getLcp2() {
    return lcp2;
  }

  public void setLcp2(String lcp2) {
    this.lcp2 = lcp2;
  }

  public String getLcpd() {
    return lcpd;
  }

  public void setLcpd(String lcpd) {
    this.lcpd = lcpd;
  }

  public Integer getAp_year() {
    return ap_year;
  }

  public void setAp_year(Integer ap_year) {
    this.ap_year = ap_year;
  }

  public String getCcm() {
    return ccm;
  }

  public void setCcm(String ccm) {
    this.ccm = ccm;
  }

  public String getRo() {
    return ro;
  }

  public void setRo(String ro) {
    this.ro = ro;
  }
}